System Design Preparation
系统设计准备
- https://www.hackerrank.com/domains
- https://oj.leetcode.com/problemset/algorithms/ LeetCode至少要刷三遍,付费部分的题建议花点钱看一下,舍不得孩子套不着狼
- http://lintcode.com/
- http://new.ninechapter.com/solutions/
- http://www.geeksforgeeks.org/about/interview-corner/
- TopCoder Algorithm Tutorial: http://help.topcoder.com/data-science/competing-in-algorithm-challenges/algorithm-tutorials/ 其中几何算法的教程要仔细看,Google特爱出几何题
- CC150: Cracking the Code Interview: http://www.valleytalk.org/wp-content/uploads/2012/10/CrackCode.pdf
- CareerCup: http://www.careercup.com/page
- Glassdoor: http://www.glassdoor.com/Interview/index.htm
http://blog.csdn.net/longyulu/article/details/9159589
Here are some articles about system design related topics.
- How to Rock a Systems Design Interview
- System Interview
- Scalability for Dummies
- Scalable Web Architecture and Distributed Systems
- Numbers Everyone Should Know
- Scalable System Design Patterns
- Introduction to Architecting Systems for Scale
- Transactions Across Datacenters
- A Plain English Introduction to CAP Theorem
- The CAP FAQ
- Paxos Made Simple
- Consistent Hashing
- NOSQL Patterns
- Scalability, Availability & Stability Patterns
There are some good references for each question. The references here are slides and articles.
Design a CDN network
Reference:
Globally Distributed Content Delivery.Design a Google document system
Reference:
google-mobwrite
Differential Synchronization.Design a random ID generation system
Reference:
Announcing Snowflake
snowflake.Design a key-value database
Reference:
Introduction to Redis.Design the Facebook news seed function
Reference:
What are best practices for building something like a News Feed?
[http://www.weiming.info/zhuti/JobHunting/32463885/][11]
What are the scaling issues to keep in mind while developing a social network feed?
Activity Feeds Architecture
http://www.weiming.info/zhuti/JobHunting/32463885/Design the Facebook timeline function
Reference:
Building Timeline
Facebook Timeline.Design a function to return the top k requests during past time interval
Reference:
Efficient Computation of Frequent and Top-k Elements in Data Streams
An Optimal Strategy for Monitoring Top-k Queries in Streaming WindowsDesign an online multiplayer card game
Reference:
How to Create an Asynchronous Multiplayer Game
How to Create an Asynchronous Multiplayer Game Part 2: Saving the Game State to Online Database
How to Create an Asynchronous Multiplayer Game Part 3: Loading Games from the Database
How to Create an Asynchronous Multiplayer Game Part 4: Matchmaking
Real Time Multiplayer in HTML5Design a graph search function
Reference:
Building out the infrastructure for Graph Search
Indexing and ranking in Graph Search
The natural language interface of Graph Search and Erlang at Facebook.Design a picture sharing system
Reference:
Flickr Architecture
Instagram Architecture.Design a search engine
Reference:
How would you implement Google Search?
Implementing Search EnginesDesign a recommendation system
Reference:
Hulu’s Recommendation System
Recommender SystemsDesign a tiny url system
Reference:
System Design for Big Data-tinyurl
URL Shortener API.Design a garbage collection system
Reference:
Baby’s First Garbage Collector.Design a scalable web crawling system
Reference:
Design and Implementation of a High-Performance Distributed Web CrawlerDesign the Facebook chat function
Reference:
Erlang at Facebook
Facebook Chat
http://www.cnblogs.com/piaoger/archive/2012/08/19/2646530.htmlDesign a trending topic system
Reference:
Implementing Real-Time Trending Topics With a Distributed Rolling Count Algorithm in Storm
Early detection of Twitter trends explainedDesign a cache system
Reference:
Introduction to Memcached
https://www.adayinthelifeof.nl/2011/02/06/memcache-internals/
http://www.careercup.com/question?id=16835665Design a typeahead search/search suggestion
Reference:
https://www.facebook.com/notes/facebook-engineering/the-life-of-a-typeahead-query/389105248919Design a system to return POI within 5 miles
Reference:
http://blog.sina.com.cn/s/blog_ae33b83901017921.html
http://www.cnblogs.com/LBSer/p/3310455.htmlCopy one file to multiple servers
Reference:
https://vimeo.com/11280885
https://blog.twitter.com/2010/murder-fast-datacenter-code-deploys-using-bittorrent